package com.gxy.learn.design.model.behaviour.observer;

/**
 * @description: 抽象主题(抽象被观察者)
 * @author: gaoxueyong
 * @Date: 2022/11/8 18:03
 */
public interface Subject {

    /**
     * 主题订阅
     *
     * @return void
     * @Author gaoxueyong
     * @Date 6:04 下午 2022/11/8
     * @Param [observer]
     **/
    void attch(Observer observer);

    /**
     * 取消主题订阅
     *
     * @return void
     * @Author gaoxueyong
     * @Date 6:04 下午 2022/11/8
     * @Param [observer]
     **/
    void detach(Observer observer);

    /**
     * 消息通知
     *
     * @return void
     * @Author gaoxueyong
     * @Date 6:04 下午 2022/11/8
     * @Param [observer]
     **/
    void notify(String message);
}
